On Line Analytical Processing or OLAP is a term that is generally applied to applications that perform multidimensional analysis which facilitates data or information to be viewed and manipulated in a more intuitive manner. For instance, in a business application, OLAP users can observe a set of corporate data in many different forms without expending great software design resources. This behavior is facilitated via OLAP files or cubes that model data in multiple dimensions. A dimension is the classification of some activity in an organization or other structure with which one can measure a parameter such as a goal or business success. For example, users can track sales data against product or customer data over a given period of time.
Generally, there are two types of dimensions that applications can employ, regular dimensions and measures dimensions. Regular dimensions refer to the items of data that users desire to measure, for example, if an application was designed to control sales one could use: Customers: with such example questions as which customers are the best buyers?, where are they located?, what do they buy? etc.; and Products: regarding customers, what are the customers buying? which products are selling the best? and so forth. Another dimension includes time, such as where do these products stand now with respect to last year or last month? In another application, account receivables could employ dimensions such as time to track the due date of receivables, where in other accounting areas dimensions such as charts of accounts, cost center issues and so forth may also be considered.
Measures dimensions are the numbers that appear in the analysis depending on the elements chosen from the regular dimensions. For example in a sales cube, one may want to track revenue, cost, units sold, discounts, and so forth. When such data has been collected, the data may be assigned to a highly sophisticated structure referred to as a multidimensional cube, where the cube can reside in a specialized database or as a standalone file. The cube allows users to observe data in a plurality of different forms. Thus, applications can cross all the respective dimensions of the cube to obtain new information which hopefully should answer questions that users may be searching for.
In general, there are two basic operations that can be performed with an OLAP cube which includes Slicing and Dicing. Users can change the dimensions they are looking at to have another view of data. For example, Sales by product can be changed easily to Sales by salesman. Slicing is to change the value of a dimension for another value—for example, change from sales of January to sales of February. Dicing is similar to throwing a dice or die and looking for a new face of the cube. Drilling is another term where data items can be drilled down to get more information. For instance, if an application were to look at geographical data, users can drill down from a region to a country and then to a city and then to a customer to observe information at greater detail.
Generally, in OLAP modeling, the extent of what is referred to as “cube space” is entirely and uniquely determined by how dimensions are defined. This may have several negative consequences including:
1. Members from different dimensions are completely independent, not allowing the cube author to specify any kind of business rule correlations that span physical dimension boundaries.
2. It is possible that non-null values get assigned to member combinations from different dimensions that logically cannot coexist and cannot have meaning for the business scenario being modeled.
3. The number of cells in the cube space is artificially increased, leading to performance degradation for queries.
One possible way to offset the above drawbacks with an OLAP product or tool is to forcefully merge such cross-varying correlated dimensions into a single dimension, which however introduces new problems. These problems include losing the strong cohesion that business or other type users have associated with attributes in a single dimension, and altering the navigation behavior through side effects of overwrite semantics between attributes that conceptually used to belong to different dimensions.